// pages/user/user.js
const api = require("../../utils/api.js")
Page({

    /**
     * 页面的初始数据
     */
    data: {
        userInfo: null,
        tempUserInfo: null,
        pageClass:'',
        showInfo: false,
        cos: null,
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {

    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {
        console.log("执行 onShow，获取用户信息")
        this.getUserInfo();
    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    },

    getUserInfo: function(){
      var ts = this;
      api.getUserInfoApi().then(res => {
        ts.setData({userInfo: res.data, tempUserInfo: JSON.parse(JSON.stringify(res.data)) })
      }).catch(err => {
        console.log("获取用户信息失败")
        console.log(err.msg)
        wx.showToast({
          title: '服务器开小差了~',
        })
      })
    },

    changeUserInfo:function(e){
        if(this.data.showInfo){
            this.cancelWindow();
        }else{
            this.setData({pageClass:"commodity_screen", showInfo:true})
        }
    },
    cancelWindow(e){
        this.setData({pageClass:'', showInfo:false, tempAvatar: this.data.userAvatar, tempName:this.data.userName,})
    },
    chooseAvatar(e){
    
        console.log(e.detail.avatarUrl);
        var temp = this.data.tempUserInfo;
        temp.userAvatar = e.detail.avatarUrl;
        this.setData({tempUserInfo: temp});
    },
    changeUserName(e){
      var temp = this.data.tempUserInfo;
      temp.userName = e.detail.value;
      this.setData({tempUserInfo: temp});

    },
    submitChange:function(){
        console.log("修改头像")
        var ts = this;
        console.log(ts.data)
        if (ts.data.tempUserInfo.userAvatar != ts.data.userInfo.userAvatar){
          var cos = api.getCos();
            console.log("上传头像")
            cos.uploadFile({
                Bucket: 'dr-1259228989',
                Region: 'ap-nanjing',
                Key: "avatar/"+ ts.data.userInfo.openid+'-avatar.jpg',              /* 存储在桶里的对象键（例如:1.jpg，a/b/test.txt，图片.jpg）支持中文，必须字段 */
                FilePath: ts.data.tempUserInfo.userAvatar, /* 上传文件路径，必须字段 */
                SliceSize: 1024 * 1024 * 5,     /* 触发分块上传的阈值，超过5MB使用分块上传，小于5MB使用简单上传。可自行设置，非必须 */
                onProgress: function(progressData) {
                    console.log(JSON.stringify(progressData));
                }
            }, function(err, data) {
                if (err) {
                  console.log('上传失败', err);
                  ts.setData({tempUserInfo: JSON.parse(JSON.stringify(ts.data.userInfo))})
                  wx.showModal({
                    title: '',
                    content: '服务器繁忙，更换头像失败',
                    complete: (res) => {
                      if (res.cancel) {
                        return;
                      }
                  
                      if (res.confirm) {
                        return;
                      }
                    }
                  })
                } else {
                    var temp = ts.data.tempUserInfo;
                    temp.userAvatar = "avatar/"+ ts.data.userInfo.openid+'-avatar.jpg';
                    ts.setData({tempUserInfo: temp})
                    api.saveUserInfoApi(temp).then(res => {
                      ts.getUserInfo()
                      ts.setData({showInfo: false, pageClass: ''});
                    }).catch(err => {
                      console.log("修改用户信息失败")
                      console.log(err.msg)
                      wx.showToast({
                        title: '服务器开小差了~',
                      })
                    })
                }
            });
        }else {
          var temp = ts.data.tempUserInfo;
          temp.userAvatar = "";
          ts.setData({tempUserInfo: temp})
          api.saveUserInfoApi(temp).then(res => {
            ts.getUserInfo()
            ts.setData({showInfo: false, pageClass: ''});
          }).catch(err => {
            console.log("修改用户信息失败")
            console.log(err.msg)
            wx.showToast({
              title: '服务器开小差了~',
            })
          })
        }


    },
    changeToInviteRecords: function(){
        wx.navigateTo({
          url: '/pages/user/invitedRecords/invitedRecords',
          title:'邀请记录',
        })
    },
    changeToRootAnalyseRecords: function(){
        wx.navigateTo({
          url: '/pages/index/records/analyseRecords?role=root',
          title:'邀请记录',
        })
    }
})